Package de.yaams.extensions.rgssproject.script

Source Code of de.yaams.extensions.rgssproject.script.ScriptTab

/**
*
*/
package de.yaams.extensions.rgssproject.script;

import java.util.ArrayList;

import javax.swing.JComponent;

import org.jruby.RubyArray;

import de.yaams.extensions.rgssproject.RGSSProjectHelper;
import de.yaams.maker.helper.gui.bcb.BcbBuilder;
import de.yaams.maker.helper.gui.list.BasisListElement;
import de.yaams.maker.helper.gui.tabs.ProjectSplitTab;
import de.yaams.maker.helper.helpcenter.HelpViewer;
import de.yaams.maker.helper.language.I18N;
import de.yaams.maker.programm.project.Project;
import de.yaams.maker.programm.project.ProjectTabEvent;

/**
* @author Nebli
*
*/
public class ScriptTab extends ProjectSplitTab {
  private static final long serialVersionUID = 8730657283128195550L;

  public static final String ID = "rgssproject.script";

  /**
   * Helperparameter for rb script load/save
   */
  public static String scriptFile;
  /**
   * Helperparameter for rb script save
   */
  public static Object[] scripts;

  /**
   * @param project
   */
  public ScriptTab(final Project project) {
    super(buildList(project), project);

    list.setAdd(true);
    list.setDelete(true);
    list.buildToolbar(I18N.t("Script"), "script");

    buildGui();

    addSaveButton();
    psContent.add(new HelpViewer("scripting"));
  }

  /*
   * (non-Javadoc)
   *
   * @see de.yaams.packandgo.helper.gui.list.YSimpleList#add()
   */
  @Override
  protected void add() {
    list.addExtern(new ScriptAction("Script", "", "0"));
  }

  /**
   * Helpermethod to build the list
   *
   * @return
   */
  private static ArrayList<BasisListElement> buildList(final Project project) {
    // open code
    scriptFile = RGSSProjectHelper.getScriptPath(project).getAbsolutePath();

    final Object[] script = ((RubyArray) RGSSProjectHelper.getInterpreter(project)
        .interpretInternFile(ScriptTab.class, "scriptLoad.rb")).toArray();

    // convert code
    final ArrayList<BasisListElement> ary = new ArrayList<BasisListElement>();
    for (Object element : script) {
      ary.add((BasisListElement) element);
    }

    return ary;
  }

  /*
   * (non-Javadoc)
   *
   * @see de.yaams.packandgo.programm.tabs.YaTab#getBottom()
   */
  @Override
  public JComponent getBottom() {
    return null;
  }

  /*
   * (non-Javadoc)
   *
   * @see de.yaams.packandgo.programm.tabs.YaTab#getIcon()
   */
  @Override
  public String getIcon() {
    return "script";
  }

  /*
   * (non-Javadoc)
   *
   * @see de.yaams.packandgo.programm.tabs.YaTab#getTitle()
   */
  @Override
  public String getTitle() {
    return I18N.t("Scripts");
  }

  /**
   * Save chanced, overwrite it to implement it
   */
  @Override
  protected void saveIntern() {
    scripts = list.getAry().toArray();
    scriptFile = RGSSProjectHelper.getScriptPath(project).getAbsolutePath();

    // scripts
    RGSSProjectHelper.getInterpreter(project).interpretInternFile(ScriptTab.class, "scriptSave.rb");
  }

  @Override
  protected void buildBcb(BcbBuilder bcb) {
    ProjectTabEvent.buildBcb(bcb, project, ID);

  }

  @Override
  public String getId() {
    return ID;
  }

}
TOP

Related Classes of de.yaams.extensions.rgssproject.script.ScriptTab

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.